package com.xiaoyushu.count.biz.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class RedisTemplateConfig {

    @Bean
    public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory connectionFactory){
       RedisTemplate<String,Object> redisTemplate= new RedisTemplate<>();
       //设置 RedisTemplate 的连接工厂
        redisTemplate.setConnectionFactory(connectionFactory);

        //使用StringRedisSerializer 来序列化和反序列化 redis的key值,确保key是可读的字符串
        redisTemplate.setKeySerializer(new StringRedisSerializer());
       redisTemplate.setHashKeySerializer(new StringRedisSerializer());
       //使用Jackson2JsonRedisSerializer 来序列化和反序列化redis的value,确保存储的是JSON格式
       Jackson2JsonRedisSerializer<Object> serializer=new Jackson2JsonRedisSerializer<>(Object.class);
       redisTemplate.setValueSerializer(serializer);
       redisTemplate.setHashValueSerializer(serializer);
       redisTemplate.afterPropertiesSet();
       return redisTemplate;




    }
}
